package com.ssy.lingxi.report.service;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.report.api.vo.request.OperateNoticeAddVO;
import com.ssy.lingxi.report.api.vo.request.OperateNoticeVO;
import com.ssy.lingxi.report.model.vo.response.*;

import java.util.List;

/**
 * 会员首页接口定义
 * @author 伍将
 * @date 2020/11/17
 * @version 2.0.0
 */
public interface IMemberHomeService {

    /**
     * 获取交易中心报表
     * @param user 登录用户
     * @return 交易中心报表
     */
    Wrapper<TradeTallyReportVO> getTradeReport(UserLoginCacheDTO user);

    /**
     * 获取资金账户管理中心报表
     * @param user 登录用户
     * @return 资金账户管理中心报表
     */
    Wrapper<AccountTallyReportVO> getAccount(UserLoginCacheDTO user);

    /**
     * 获取结算中心报表
     * @param user 登录用户
     * @return 结算中心报表
     */
    Wrapper<SettleAccountTallyReportVO> getSettleAccountReport(UserLoginCacheDTO user);

    /**
     * 获取售后中心报表
     * @param user 登录用户
     * @return 售后中心报表
     */
    Wrapper<AfterSaleTallyReportVO> getAfterSaleReport(UserLoginCacheDTO user);

    /**
     * 获取加工中心报表
     * @param user 登录用户
     * @return 加工中心报表
     */
    Wrapper<EnhanceTallyReportVO> getEnhanceReport(UserLoginCacheDTO user);

    /**
     * 获取商品中心报表
     * @param user 登录用户
     * @return 加工中心报表
     */
    Wrapper<List<TallyReportItemVO>> getCommodityReport(UserLoginCacheDTO user);

    /**
     * 获取物流中心报表
     * @param user 登录用户
     * @return 物流中心报表
     */
    Wrapper<LogisticsTallyReportVO> getLogisticsReport(UserLoginCacheDTO user);

    /**
     * 批量新增操作通知
     * @param operateVOList 新增操作通知
     * @return 操作结果
     */
    Wrapper<Void> addOperateNoticeList(List<OperateNoticeVO> operateVOList);

    /**
     * 新增操作通知
     * @param operateVO 操作通知数据
     * @return 操作结果
     */
    Wrapper<Void> addOperateNotice(OperateNoticeVO operateVO);
    /**
     * 新增操作通知
     * @param operateNoticeAddVO 操作通知数据
     */
    void addOperateNotice(OperateNoticeAddVO operateNoticeAddVO);

    /**
     * 获取会员代办
     * @author 伍将
     * @date 2020/12/30
     * @param user: 当前登录用户
     * @return 操作结果
     **/
    Wrapper<MemberTodoVO> getMemberTodo(UserLoginCacheDTO user);

    /**
     * 获取会员商城待办
     * @author 伍将
     * @date 2021/1/18
     * @param user: 当前登录用户
     * @param isPurchase: 是否为采购商（0：否，1：是）
     * @return 会员商城待办
     **/
    Wrapper<MemberMallBacklogVO> getMemberMallBacklog(UserLoginCacheDTO user,Integer isPurchase);

    /**
     * 获取会员中心报表
     * @param sysUser 登录用户
     * @return 会员中心报表
     */
    Wrapper<MemberTallyReportVO> getMemberReport(UserLoginCacheDTO sysUser);

    /**
     * 获取合同中心报表.
     * @param sysUser 登录用户
     * @return 合同中心报表.
     */
    Wrapper<ContractTallyReportVO> getContractReport(UserLoginCacheDTO sysUser);

    /**
     * 获取采购中心报表.
     * @param sysUser 登录用户
     * @return 采购中心报表.
     */
    Wrapper<PurchaseTallyReportVO> getPurchaseReport(UserLoginCacheDTO sysUser);

    /**
     * 获取订单中心报表
     * @param sysUser 登录用户
     * @return 订单中心报表
     */
    Wrapper<OrderTallyReportVO> getOrderReport(UserLoginCacheDTO sysUser);
}
